<?php

require_once '../model/entity/Usuario.php';
require_once '../model/entity/Professor.php';
require_once '../model/entity/Aluno.php';
require_once '../model/entity/MembroExterno.php';

new TratalLogin();

/**
 * Classe responsável pelo tratamento do login
 *
 * @author gabrielbmoro
 */
class TratalLogin {

    //put your code here
    private $varLogin;
    private $varSenha;
    // private $dbUsuario;
    private $usuario;
    private $aluno;
    private $professor;
    private $membroExterno;

    /* Método responsável pela inicialização dos dados */

    public function __construct() {
        $this->varLogin = $_POST['username'];
        $this->varSenha = $_POST['password'];
        $this->usuario = new Usuario($this->varSenha, $this->varLogin, null);
        $this->fazerLogin();
    }

    /* Método responsável pelo login e criptografia da senha do usuário para acesso */

    private function fazerLogin() {
        $this->varSenha = md5($this->varSenha) . "punkrock";
        $campoCondicional = array('login' => $this->varLogin, 'senha' => $this->varSenha);

        $papel = null;
        $tipoProfessor = null;
        $usrObj = null;
        if ($this->varLogin == null || $this->varSenha == null) {
            echo "Dados inválidos";
        } else {
            $result = $this->usuario->logarEmSistema($campoCondicional);
            if ($result == true) {
                $this->recuperarDadosERedirecionar($_SESSION['tipo']);
            } else {
                header('Location: ../view/layouts/login_error.html');
            }
        }
    }

    private function recuperarDadosERedirecionar($tipo) {
        if ($tipo == "Aluno") {
            $this->aluno = new Aluno(null, null, null, null);
            $arrayList = $this->aluno->getDadosDePerfil($_SESSION['idUser']);
            if ($arrayList != null) {
                $_SESSION['nome'] = $arrayList[0];
                $_SESSION['email'] = $arrayList[1];
                $_SESSION['univers'] = "Universidade Federal do Pampa";
            }
            header('Location: ../view/layouts/layouts.aluno/menu.aluno.php');
        } else if ($tipo == "Professor") {
            $this->professor = new Professor(null, null, null, null, null, null, null);
            $arrayList = $this->professor->getDadosDePerfil($_SESSION['idUser']);
            if ($arrayList != null) {
                $_SESSION['nome'] = $arrayList[0];
                $_SESSION['email'] = $arrayList[1];
                $_SESSION['univers'] = "Universidade Federal do Pampa";
            }
            header('Location: ../view/layouts/layouts.professor/menu.professor.php');
        } else if ($tipo == "MembroExterno") {
            $this->membroExterno = new MembroExterno(null, null, null, null, null);
            $arrayList = $this->membroExterno->getDadosDePerfil($_SESSION['idUser']);
            if ($arrayList != null) {
                $_SESSION['nome'] = $arrayList[0];
                $_SESSION['email'] = $arrayList[1];
                $_SESSION['univers'] = $arrayList[2];
            }
            header('Location: ../view/layouts/layouts.membroExterno/menu.membroExterno.php');
        }
    }

}
